home *** CD-ROM | disk | FTP | other *** search
Wrap
<?xml version="1.0" encoding="EUC-JP"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head><!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> <title>Apache Tutorial: CGI ñ╦ñΦñδ╞░┼¬Ñ│Ñ≤Ñ╞Ñ≤Ñ─ - Apache HTTP Ñ╡í╝Ñ╨</title> <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /> <link href="../images/favicon.ico" rel="shortcut icon" /></head> <body id="manual-page"><div id="page-header"> <p class="menu"><a href="../mod/">ÑΓÑ╕Ñσí╝Ñδ</a> | <a href="../mod/directives.html">Ñ╟ÑúÑ∞Ñ»Ñ╞ÑúÑ╓</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">═╤╕∞</a> | <a href="../sitemap.html">Ñ╡ÑñÑ╚Ñ▐Ñ├Ñ╫</a></p> <p class="apache">Apache HTTP Ñ╡í╝Ñ╨ Ñ╨í╝Ñ╕ÑτÑ≤ 2.0</p> <img alt="" src="../images/feather.gif" /></div> <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> <div id="path"> <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Ñ╡í╝Ñ╨</a> > <a href="http://httpd.apache.org/docs-project/">Ñ╔Ñ¡ÑσÑßÑ≤Ñ╞í╝Ñ╖ÑτÑ≤</a> > <a href="../">Ñ╨í╝Ñ╕ÑτÑ≤ 2.0</a> > <a href="./">How-To / Ñ┴Ñσí╝Ñ╚ÑΩÑóÑδ</a></div><div id="page-content"><div id="preamble"><h1>Apache Tutorial: CGI ñ╦ñΦñδ╞░┼¬Ñ│Ñ≤Ñ╞Ñ≤Ñ─</h1> <div class="toplang"> <p><span>Available Languages: </span><a href="../en/howto/cgi.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../ja/howto/cgi.html" title="Japanese"> ja </a> | <a href="../ko/howto/cgi.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> </div> </div> <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#intro">ñ╧ñ╕ñßñ╦</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#configuring">CGI ñ≥╡÷▓─ñ╣ñδñΦñªñ╦ Apache ñ≥└▀─Ωñ╣ñδ</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#writing">CGI Ñ╫ÑφÑ░ÑΘÑαñ≥╜±ñ»</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#troubleshoot">ñ╖ñ½ñ╖íóñ▐ñ└╞░ñ½ñ╩ññ !</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#behindscenes">╬óñ╟▓┐ñ¼╡»ñ│ñ├ñ╞ñññδñ╬ñ½?</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#libraries">CGI ÑΓÑ╕Ñσí╝Ñδ/ÑΘÑñÑ╓ÑΘÑΩ</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#moreinfo">╣╣ñ╩ñδ╛≡╩≤</a></li> </ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="intro" id="intro">ñ╧ñ╕ñßñ╦</a></h2> <table class="related"><tr><th>┤╪╧óÑΓÑ╕Ñσí╝Ñδ</th><th>┤╪╧óÑ╟ÑúÑ∞Ñ»Ñ╞ÑúÑ╓</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code></li><li><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code></li><li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code></li></ul></td></tr></table> <p>CGI (Common Gateway Interface) ñ╧íóѪѺÑ╓Ñ╡í╝Ñ╨ñ¼ Ñ│Ñ≤Ñ╞Ñ≤Ñ─└╕└«ñ≥ñ╣ñδ│░╔⌠Ñ╫ÑφÑ░ÑΘÑαñ╚╢¿─┤ñ╖ñ╞╞░║εñ╣ñδñ┐ñßñ╬╩²╦íñ≥ ─Ω╡┴ñ╖ñ╞ñññ▐ñ╣íúñ╜ñ╬Ñ╫ÑφÑ░ÑΘÑαñ╧ñ╖ñ╨ñ╖ñ╨ CGI Ñ╫ÑφÑ░ÑΘÑαñΣ CGI Ñ╣Ñ»ÑΩÑ╫Ñ╚ñ╚╕╞ñ╨ñ∞ñ▐ñ╣íúCGI ñ╧íóѪѺÑ╓Ñ╡ÑñÑ╚ñ╦╞░┼¬ñ╩ Ñ│Ñ≤Ñ╞Ñ≤Ñ─ñ≥├╓ñ»ñ┐ñßñ╬║╟ñΓ┤╩├▒ñ╟░∞╚╠┼¬ñ╩╩²╦íñ╟ñ╣íúñ│ñ╬Ñ╔Ñ¡ÑσÑßÑ≤Ñ╚ñ╧íó Apache ѪѺÑ╓Ñ╡í╝Ñ╨ñ╟ CGI ñ≥└▀─Ωñ╖íó CGI Ñ╫ÑφÑ░ÑΘÑαñ≥╜±ñ¡╗╧ñßñδñ┐ñßñ╬╞■╠τ╜±ñ╚ñ╩ñδñ╟ñ╖ñτñªíú</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="configuring" id="configuring">CGI ñ≥╡÷▓─ñ╣ñδñΦñªñ╦ Apache ñ≥└▀─Ωñ╣ñδ</a></h2> <p>CGI Ñ╫ÑφÑ░ÑΘÑαñ≥└╡ñ╖ñ»╞░║εñ╡ñ╗ñδñ╦ñ╧íóCGI ñ≥╡÷▓─ñ╣ñδñΦñªñ╦ Apache ñ╬└▀─Ωñ≥╣╘ñª╔¼═╫ñ¼ñóñΩñ▐ñ╣íú ñ│ñ∞ñ≥╣╘ñ╩ñªñ┐ñßñ╬╩²╦íñ¼ñññ»ñ─ñ½ñóñΩñ▐ñ╣íú</p> <h3><a name="scriptalias" id="scriptalias">ScriptAlias</a></h3> <p><code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> Ñ╟ÑúÑ∞Ñ»Ñ╞ÑúÑ╓ñ≥╗╚═╤ñ╖ñ╞íó CGI Ñ╫ÑφÑ░ÑΘÑα═╤ñ╬╞├╩╠ñ╩╩╠Ñ╟ÑúÑ∞Ñ»Ñ╚ÑΩñ≥ Apache ñ╦└▀─Ωñ╖ñ▐ñ╣íú Apache ñ╧íóñ│ñ╬Ñ╟ÑúÑ∞Ñ»Ñ╚ÑΩ├µñ╬┴┤ñ╞ñ╬Ñ╒ÑíÑñÑδñ≥ CGI Ñ╫ÑφÑ░ÑΘÑαñ╟ñóñδñ╚▓╛─Ωñ╖ñ▐ñ╣íú ñ╜ñ╖ñ╞íóñ│ñ╬╞├╩╠ñ╩ÑΩÑ╜í╝Ñ╣ñ¼Ñ»ÑΘÑñÑóÑ≤Ñ╚ñ½ñΘ═╫╡ßñ╡ñ∞ñδñ╚íó ñ╜ñ╬Ñ╫ÑφÑ░ÑΘÑαñ╬╝┬╣╘ñ≥╗εñ▀ñ▐ñ╣íú</p> <p><code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> Ñ╟ÑúÑ∞Ñ»Ñ╞ÑúÑ╓ñ╧░╩▓╝ñ╬ñΦñªñ╦╗╚═╤ñ╖ñ▐ñ╣:</p> <div class="example"><p><code> ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/ </code></p></div> <p>Ñ╟Ñ╒Ñ⌐ÑδÑ╚░╠├╓ñ╦ Apache ñ≥ÑñÑ≤Ñ╣Ñ╚í╝Ñδñ╖ñ┐ñ╩ñΘñ╨íó ñ│ñ╬╬πñ╧Ñ╟Ñ╒Ñ⌐ÑδÑ╚╛⌡┬╓ñ╬ <code>httpd.conf</code> └▀─ΩÑ╒ÑíÑñÑδñ╦┤▐ñ▐ñ∞ñ╞ñññ▐ñ╣íú <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> Ñ╟ÑúÑ∞Ñ»Ñ╞ÑúÑ╓ñ╧íóURL ñ╬┴░ñ╦╔╒▓├ñ╣ñδÑ╟ÑúÑ∞Ñ»Ñ╚ÑΩñ≥─Ω╡┴ñ╣ñδ <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> Ñ╟ÑúÑ∞Ñ»Ñ╞ÑúÑ╓ñ╚ñ½ñ╩ñΩ╗≈ñ╞ñññ▐ñ╣íú <code class="directive">Alias</code> ñ╚ <code class="directive">ScriptAlias</code> ñ╧─╠╛∩íó<code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> Ñ╟ÑúÑ∞Ñ»Ñ╚ÑΩ│░ñ╬Ñ╟ÑúÑ∞Ñ»Ñ╚ÑΩñ╬ñ┐ñßñ╦╗╚═╤ñ╡ñ∞ñ▐ñ╣íú <code class="directive">Alias</code> ñ╚ <code class="directive">ScriptAlias</code> ñ╚ñ╬║╣ñ╧íó<code class="directive">ScriptAlias</code> ñ¼└▄╞¼╝¡ñ╟╗╧ñ▐ñδñ╣ñ┘ñ╞ñ╬ URL ñ╧ CGI Ñ╫ÑφÑ░ÑΘÑαñ╚ñ▀ñ╩ñ╡ñ∞ñδñ╚ñññª─╔▓├ñ╬░╒╠úñ≥┤▐ñ≤ñ╟ñññδñ│ñ╚ñ╟ñ╣íú ╜╛ñ├ñ╞íó╛σ╡¡ñ╬╬πñ╟ñ╧íó<code>/cgi-bin/</code> ñ╟╗╧ñ▐ñδÑΩÑ╜í╝Ñ╣ñ╪ñ╬ñóñΘñµñδÑΩѻѿÑ╣Ñ╚ñ╦┬╨ñ╖ñ╞íóÑ╟ÑúÑ∞Ñ»Ñ╚ÑΩ <code>/usr/local/apache2/cgi-bin/</code> ñ½ñΘ─≤╢íñ╖íóñ╜ñ∞ñΘñ≥ CGI Ñ╫ÑφÑ░ÑΘÑαñ╚ñ╖ñ╞░╖ñªñΦñª Apache ñ╦╝¿ñ╖ñ▐ñ╣íú</p> <p>╬πñ¿ñ╨íóURL <code>http://dev.rcbowen.com/cgi-bin/test.pl</code> ñ¼═╫╡ßñ╡ñ∞ñ┐╛∞╣τíóApache ñ╧ Ñ╒ÑíÑñÑδ <code>/usr/local/apache2/cgi-bin/test.pl</code> ñ≥╝┬╣╘ñ╖íóñ╜ñ╬╜╨╬╧ñ≥╩╓ñ╣ñ│ñ╚ñ≥╗εñ▀ñ▐ñ╣íú ñΓñ┴ñφñ≤íóÑ╒ÑíÑñÑδñ¼┬╕║▀ñ╖íó╝┬╣╘▓─╟╜ñ╟ñóñΩíó╖ΦñßñΘñ∞ñ┐╩²╦íñ╟╜╨╬╧ñ≥╩╓ñ╖ñ▐ñ╣íú ñ╜ñªñ╟ñ╩ñ▒ñ∞ñ╨íóApache ñ╧Ñ¿ÑΘí╝ÑßÑ├Ñ╗í╝Ñ╕ñ≥╩╓ñ╖ñ▐ñ╣íú</p> <h3><a name="nonscriptalias" id="nonscriptalias">ScriptAlias Ñ╟ÑúÑ∞Ñ»Ñ╚ÑΩ│░ñ╬ CGI</a></h3> <p>CGI Ñ╫ÑφÑ░ÑΘÑαñ╧íóÑ╗Ñ¡ÑσÑΩÑ╞Ñú╛σñ╬═²═│ñ½ñΘ <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> ñ╡ñ∞ñ┐Ñ╟ÑúÑ∞Ñ»Ñ╚ÑΩñ╦└⌐╕┬ñ╡ñ∞ñδñ│ñ╚ñ¼ñ╖ñ╨ñ╖ñ╨ñóñΩñ▐ñ╣íúñ│ñ╬╩²╦íñ╦ñΦñΩíó CGI Ñ╫ÑφÑ░ÑΘÑαñ≥╗╚═╤ñ╟ñ¡ñδѵí╝Ñ╢ñ≥┤╔═²╝╘ñ¼╕╖ñ╖ñ»└⌐╕µñ╣ñδñ│ñ╚ñ¼ñ╟ñ¡ñ▐ñ╣íú ñ╖ñ½ñ╖ñ╩ñ¼ñΘíó┼¼└┌ñ╩Ñ╗Ñ¡ÑσÑΩÑ╞Ñú╗÷┴░┬╨║÷ñ¼ñ╚ñΘñ∞ñδñ╩ñΘñ╨íóCGI Ñ╫ÑφÑ░ÑΘÑαñ≥╟ñ░╒ñ╬Ñ╟ÑúÑ∞Ñ»Ñ╚ÑΩñ╟╝┬╣╘ñ╟ñ¡ñ╩ñññΦñªñ╦ñ╣ñδ═²═│ñ╧ñóñΩñ▐ñ╗ñ≤íú ╬πñ¿ñ╨íóѵí╝Ñ╢ñ╦ <code class="directive"><a href="../mod/mod_userdir.html#userdir">UserDir</a></code> Ñ╟ÑúÑ∞Ñ»Ñ╞ÑúÑ╓ñ╟╚αñΘñ╬Ñ█í╝ÑαÑ╟ÑúÑ∞Ñ»Ñ╚ÑΩ╟█▓╝ñ╦ѪѺÑ╓Ñ│Ñ≤Ñ╞Ñ≤Ñ─ñ≥╗²ñ┐ñ╗ñ┐ñññ╚ñ╖ñ▐ñ╣íú ñΓñ╖íó╚αñΘñ¼ CGI Ñ╫ÑφÑ░ÑΘÑαñ≥╗²ñ─ñ│ñ╚ñ≥╦╛ñ≤ñ╟ñññ╞ñΓíóÑßÑñÑ≤ñ╬ <code>cgi-bin</code> Ñ╟ÑúÑ∞Ñ»Ñ╚ÑΩñ╪ñ╬ÑóÑ»Ñ╗Ñ╣ñ¼ñ╟ñ¡ñ╩ññ╛∞╣τíó CGI Ñ╫ÑφÑ░ÑΘÑαñ≥╝┬╣╘ñ╣ñδñ│ñ╚ñ¼ñ╟ñ¡ñδ┬╛ñ╬╛∞╜Ωñ¼╔¼═╫ñ╦ñ╩ñΩñ▐ñ╣íú</p> <p>╟ñ░╒ñ╬Ñ╟ÑúÑ∞Ñ»Ñ╚ÑΩñ╟ CGI ñ╬╝┬╣╘ñ≥╡÷▓─ñ╣ñδñ╦ñ╧╞≤├╩│¼ñ╬└▀─Ωñ¼╔¼═╫ñ╟ñ╣íú ñ▐ñ║íó<code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code> ñΣ <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code> Ñ╟ÑúÑ∞Ñ»Ñ╞ÑúÑ╓ñ╦ñΦñ├ñ╞ <code>cgi-script</code> Ñ╧Ñ≤Ñ╔ÑΘñ¼▓─╟╜ñ╦ñ╩ñ├ñ╞ñññδ╔¼═╫ñ¼ñóñΩñ▐ñ╣íú ╝íñ╦íó<code class="directive"><a href="../mod/core.html#options">Options</a></code> Ñ╟ÑúÑ∞Ñ»Ñ╞ÑúÑ╓ñ╟ <code>ExecCGI</code> ñ¼╗╪─Ωñ╡ñ∞ñ╞ñññ╩ñ▒ñ∞ñ╨ñ╩ñΩñ▐ñ╗ñ≤íú</p> <h3><a name="options" id="options">CGI ñ╬╝┬╣╘ñ≥▓─╟╜ñ╦ñ╣ñδñ┐ñßñ╦ Options ñ≥╠└╝¿┼¬ñ╦╗╚═╤ñ╣ñδ</a></h3> <p>Ñ╡í╝Ñ╨ñ╬ÑßÑñÑ≤ñ╬└▀─ΩÑ╒ÑíÑñÑδ├µñ╟ <code class="directive"><a href="../mod/core.html#options">Options</a></code> Ñ╟ÑúÑ∞Ñ»Ñ╞ÑúÑ╓ñ≥╠└╝¿┼¬ñ╦╗╚═╤ñ╣ñδñ│ñ╚ñ╟íó╞├─Ωñ╬Ñ╟ÑúÑ∞Ñ»Ñ╚ÑΩ╟█▓╝ñ╟ CGI ñ╬╝┬╣╘ñ≥╡÷▓─ñ╣ñδñΦñªñ╦╗╪─Ωñ╣ñδñ│ñ╚ñ¼ñ╟ñ¡ñ▐ñ╣:</p> <div class="example"><p><code> <Directory /usr/local/apache2/htdocs/somedir><br /> <span class="indent"> Options +ExecCGI<br /> </span> </Directory> </code></p></div> <p>╛σ╡¡Ñ╟ÑúÑ∞Ñ»Ñ╞ÑúÑ╓ñ╧íóCGI Ñ╒ÑíÑñÑδñ╬╝┬╣╘ñ≥▓─╟╜ñ╦ñ╣ñδñΦñª Apache ñ╦┼┴ñ¿ñ▐ñ╣íúñ▐ñ┐íóñ╔ñ╬Ñ╒ÑíÑñÑδñ¼ CGI Ñ╒ÑíÑñÑδñ½ñ≥ Ñ╡í╝Ñ╨ñ╦┼┴ñ¿ñδ╔¼═╫ñ¼ñóñΩñ▐ñ╣íú╝íñ╬ <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code> Ñ╟ÑúÑ∞Ñ»Ñ╞ÑúÑ╓ñ╬╬πñ╟ñ╧íó<code>cgi</code> ñ▐ñ┐ñ╧ <code>pl</code> ñ≥│╚─Ñ╗╥ñ╦╗²ñ─ñ╣ñ┘ñ╞ñ╬Ñ╒ÑíÑñÑδñ≥ CGI Ñ╫ÑφÑ░ÑΘÑαñ╚ñ╖ñ╞ñ▀ñ╩ñ╣ñ│ñ╚ñ≥Ñ╡í╝Ñ╨ñ╦┼┴ñ¿ñ▐ñ╣:</p> <div class="example"><p><code> AddHandler cgi-script .cgi .pl </code></p></div> <h3><a name="htaccess" id="htaccess">.htaccess files</a></h3> <p><a href="htaccess.html"><code>.htaccess</code> Ñ┴Ñσí╝Ñ╚ÑΩÑóÑδ</a> ñ╧ <code>httpd.conf</code> ñ≥╩╤╣╣ñ╟ñ¡ñ╩ññ╛∞╣τñ╦ñ╔ñªñΣñ├ñ╞ CGI Ñ╫ÑφÑ░ÑΘÑαñ≥ ╗╚ñ¿ñδñΦñªñ╦ñ╣ñδñ½ñ≥└Γ╠└ñ╖ñ╞ñññ▐ñ╣íú</p> <h3><a name="userdir" id="userdir">User Ñ╟ÑúÑ∞Ñ»Ñ╚ÑΩ</a></h3> <p><code>.cgi</code> ñ╟╜¬ñ∩ñδñ╣ñ┘ñ╞ñ╬Ñ╒ÑíÑñÑδñ╦┬╨ñ╖ñ╞ CGI Ñ╫ÑφÑ░ÑΘÑαñ╬ ╝┬╣╘ñ≥╡÷▓─ñ╣ñδñ╦ñ╧íó░╩▓╝ñ╬└▀─Ωñ≥╗╚═╤ñ╟ñ¡ñ▐ñ╣íú</p> <div class="example"><p><code> <Directory /home/*/public_html><br /> <span class="indent"> Options +ExecCGI<br /> AddHandler cgi-script .cgi<br /> </span> </Directory> </code></p></div> <p>ѵí╝Ñ╢Ñ╟ÑúÑ∞Ñ»Ñ╚ÑΩñ╬ <code>cgi-bin</code> Ñ╡Ñ╓Ñ╟ÑúÑ∞Ñ»Ñ╚ÑΩñ╬ ñ╣ñ┘ñ╞ñ╬Ñ╒ÑíÑñÑδñ≥ CGI Ñ╫ÑφÑ░ÑΘÑαñ╚ñ╖ñ╞╗╪─Ωñ╖ñ┐ññ╛∞╣τñ╦ñ╧ ░╩▓╝ñ╬ñΦñªñ╩ñΓñ╬ñ≥╗╚ñññ▐ñ╣íú</p> <div class="example"><p><code> <Directory /home/*/public_html/cgi-bin><br /> <span class="indent"> Options ExecCGI<br /> SetHandler cgi-script<br /> </span> </Directory> </code></p></div> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="writing" id="writing">CGI Ñ╫ÑφÑ░ÑΘÑαñ≥╜±ñ»</a></h2> <p>í╓─╠╛∩ñ╬í╫Ñ╫ÑφÑ░ÑΘÑ▀Ñ≤Ñ░ñ╚ CGI Ñ╫ÑφÑ░ÑΘÑ▀Ñ≤Ñ░ñ╬┤╓ñ╦ñ╧╝τñ╦╞≤ñ─ñ╬░πñññ¼ñóñΩñ▐ñ╣íú</p> <p>░∞ñ─ñ╧íóCGI Ñ╫ÑφÑ░ÑΘÑαñ╬ñ╣ñ┘ñ╞ñ╬╜╨╬╧ñ╦ñ╧ MIME-type Ñ╪Ñ├Ñ└ñ≥╔╒ñ▒ñ╩ñ▒ñ∞ñ╨ñ╩ñΩñ▐ñ╗ñ≤íú ñ│ñ∞ñ╧ñ╔ñ╬ñΦñªñ╩╝∩╬αñ╬Ñ│Ñ≤Ñ╞Ñ≤Ñ─ñ≥╝⌡ñ▒╝Φñ├ñ╞ñññδñ½ñ≥Ñ»ÑΘÑñÑóÑ≤Ñ╚ñ╦╝¿ñ╣ HTTP Ñ╪Ñ├Ñ└ñ╟ñ╣íúñ█ñ╚ñ≤ñ╔ñ╬╛∞╣τñ╟ñ╧íó╝íñ╬ñΦñªñ╦╜╨╬╧ñ╖ñ▐ñ╣:</p> <div class="example"><p><code> Content-type: text/html </code></p></div> <p>ñΓñª░∞ñ─ñ╧íó╜╨╬╧ñ≥ HTML ñ½íóÑ╓ÑΘѪÑ╢ñ¼╔╜╝¿ñ╣ñδñ│ñ╚ñ¼ñ╟ñ¡ñδ▓┐ñ½┬╛ñ╬╖┴╝░ñ╦ñ╣ñδ╔¼═╫ñ¼ñóñΩñ▐ñ╣íú ┬τ─±ñ╬╛∞╣τñ╧ HTML ñ╟ñ╖ñτñªñ¼íóGIF ÑñÑßí╝Ñ╕ñΣ┬╛ñ╬╚≤ HTML Ñ│Ñ≤Ñ╞Ñ≤Ñ─ñ≥╜╨╬╧ñ╣ñδ CGI Ñ╫ÑφÑ░ÑΘÑαñ≥╜±ñ»ñ│ñ╚ñΓñóñδñ╟ñ╖ñτñªíú</p> <p>ñ│ñ∞ñΘ╞≤┼└░╩│░ñ╟ñ╧íóCGI Ñ╫ÑφÑ░ÑΘÑαñ≥╜±ñ»ñ│ñ╚ñ╧íó ñóñ╩ñ┐ñ¼╜±ñññ╞ñññδ┬╛ñ╬Ñ╫ÑφÑ░ÑΘÑαñ╚ñΦñ»╗≈ñ╞ñññδñ╟ñ╖ñτñªíú</p> <h3><a name="firstcgi" id="firstcgi">║╟╜Θñ╬ CGI Ñ╫ÑφÑ░ÑΘÑα</a></h3> <p>╝íñ╦╝¿ñ╣ñ╬ñ╧íóÑ╓ÑΘѪÑ╢ñ╦ 1 ╣╘░⌡╗·ñ╣ñδ CGI Ñ╫ÑφÑ░ÑΘÑαñ╬╬πñ╟ñ╣íú░╩▓╝ñ≥╞■╬╧ñ╖íó<code>first.pl</code> ñ╚ñññªÑ╒ÑíÑñÑδñ╦╩▌┬╕ñ╖íóñ╜ñ∞ñ≥ <code>cgi-bin</code> Ñ╟ÑúÑ∞Ñ»Ñ╚ÑΩñ╦├╓ñññ╞ñ»ñ└ñ╡ññíú</p> <div class="example"><p><code> #!/usr/bin/perl<br /> print "Content-type: text/html\n\n";<br /> print "Hello, World."; </code></p></div> <p>Perl ñ╦└║─╠ñ╖ñ╞ñññ╩ñ»ñ╞ñΓíó ▓┐ñ¼╡»ñ│ñδñ½ñ≥═²▓≥ñ╣ñδñ│ñ╚ñ╧ñ╟ñ¡ñδñ╟ñ╖ñτñªíú1 ╣╘╠▄ñ╧íó <code>/usr/bin/perl</code> ñ╟╕½ñ─ñ▒ñΘñ∞ñδÑñÑ≤Ñ┐Ñ╫ÑΩÑ┐ñ╦ ñ│ñ╬Ñ╒ÑíÑñÑδñ≥╢í╡δñ╣ñδñ│ñ╚ñ╟ñ│ñ╬Ñ╫ÑφÑ░ÑΘÑαñ¼╝┬╣╘ñ╡ñ∞ñδñ│ñ╚ñ≥ Apache ñ╦ (Ñ╖ѺÑδ╛σñ╟╝┬╣╘ñ╖ñΦñªñ╚ñ╖ñ╞ñññδñ╩ñΘñ╨íóñ╜ñ╬Ñ╖ѺÑδñ╦ ) ╝¿ñ╖ñ▐ñ╣íú2 ╣╘╠▄ñ╧íó┴░╜╥ñ╖ñ┐ñ╚ñ¬ñΩ content-type ñ╬─Ω╡┴ñ≥░⌡╗·ñ╖ñ▐ñ╣íú ñ│ñ∞ñ╦ñ╧╔ⁿ╡ó▓■╣╘ñ╬╞≤ñ─ñ╬┴╚ñ≥╕σñ╦╔╒▓├ñ╖ñ▐ñ╣íú ñ│ñ∞ñ╦ñΦñΩíóÑ╪Ñ├Ñ└ñ╬╜¬ñΩñ╦╢⌡╣╘ñ¼├╓ñ½ñ∞íóHTTP Ñ╪Ñ├Ñ└ñ╬╜¬ñΩñ╚Ñ▄Ñ╟Ñúñ╬╗╧ñ▐ñΩñ≥╝¿ñ╖ñ▐ñ╣íú3 ╣╘╠▄ñ╧íó"Hello, World." ñ╚ñññª╩╕╗·╬≤ñ≥░⌡╗·ñ╖íóñ│ñ∞ñ╟╜¬ñΩñ╚ñ╩ñΩñ▐ñ╣íú</p> <p>╣Ññ▀ñ╬Ñ╓ÑΘѪÑ╢ñ≥│½ñ¡íóÑóÑ╔Ñ∞Ñ╣</p> <div class="example"><p><code> http://www.example.com/cgi-bin/first.pl </code></p></div> <p>ñóñδñññ╧Ñ╒ÑíÑñÑδñ≥├╓ñññ┐ÑφÑ▒í╝Ñ╖ÑτÑ≤ñ≥╗╪─Ωñ╣ñδñ╚íó <code>Hello, World.</code> ñ╚ñññª 1 ╣╘ñ¼Ñ╓ÑΘѪÑ╢ѪÑúÑ≤Ñ╔ñ╦╕╜ñ∞ñδñ╟ñ╖ñτñªíú ñ╜ñ∞ñ╧ñóñ▐ñΩѿѡÑ╡ÑñÑ╞ÑúÑ≤Ñ░ñ╩ñ│ñ╚ñ╟ñ╧ñóñΩñ▐ñ╗ñ≤íú ñ╖ñ½ñ╖íóñ│ñ∞ñ¼ñªñ▐ñ»╞░ñ▒ñ╨íó ┬╛ñ╬ñ╔ñ╬ñΦñªñ╩ñΓñ╬ñ╟ñΓ╞░ñ½ñ╣ñ│ñ╚ñ¼ñ╟ñ¡ñδñΦñªñ╦ñ╩ñΩñ▐ñ╣íú</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="troubleshoot" id="troubleshoot">ñ╖ñ½ñ╖íóñ▐ñ└╞░ñ½ñ╩ññ !</a></h2> <p>ѪѺÑ╓ñ½ñΘ CGI Ñ╫ÑφÑ░ÑΘÑαñ╪ñ╬ÑóÑ»Ñ╗Ñ╣ñ≥╣╘ñ╩ñ├ñ┐ñ╚ñ¡íó Ñ╓ÑΘѪÑ╢ñ╟╕½ñδ▓─╟╜└¡ñ¼ñóñδ╗═ñ─ñ╬┤≡╦▄┼¬ñ╩ñ│ñ╚ñ¼ñóñΩñ▐ñ╣:</p> <dl> <dt>CGI Ñ╫ÑφÑ░ÑΘÑαñ╬╜╨╬╧</dt> <dd>┴╟└▓ñΘñ╖ññ ! ñ╜ñ∞ñ╧ñ╣ñ┘ñ╞ñ¼ñªñ▐ñ»╞░ñññ┐ñ│ñ╚ñ≥░╒╠úñ╖ñ▐ñ╣íú ╜╨╬╧ñ¼└╡╛∩ñ└ñ▒ñ∞ñ╔ñΓíóÑ╓ÑΘѪÑ╢ñ¼└╡╛∩ñ╦╜Φ═²ñ╖ñ╞ñ»ñ∞ñ╩ññ╛∞╣τñ╧íó └╡ñ╖ññ <code>Content-Type</code> ñ≥ CGI Ñ╫ÑφÑ░ÑΘÑα╞Γñ╟ Ñ╗Ñ├Ñ╚ñ╖ñ┐ñ½ñ≥│╬╟ºñ╖ñ╞ñ»ñ└ñ╡ññíú</dd> <dt>CGI Ñ╫ÑφÑ░ÑΘÑαñ╬Ñ╜í╝Ñ╣Ñ│í╝Ñ╔íóñ▐ñ┐ñ╧ "POST Method Not Allowed" ñ╚ñññªÑßÑ├Ñ╗í╝Ñ╕</dt> <dd>ñ│ñ∞ñ╧íóCGI Ñ╫ÑφÑ░ÑΘÑαñ≥╜Φ═²ñ╟ñ¡ñδñΦñª Apache ñ≥┼¼└┌ñ╦└▀─Ωñ╖ñ╞ñññ╩ñ½ñ├ñ┐ñ│ñ╚ñ≥░╒╠úñ╖ñ▐ñ╣íú<a href="#configuring">í╓CGI ñ≥╡÷▓─ñ╣ñδñΦñªñ╦ Apache ñ≥└▀─Ωñ╣ñδí╫</a>ñ╬╛╧ñ≥╞╔ñ▀─╛ñ╖íó ñóñ╩ñ┐ñ¼▓┐ñ≥┤╓░πñ¿ñ┐ñ½ñ≥├╡ñ╖ñ╞ñ▀ñ╞ñ»ñ└ñ╡ññíú </dd> <dt>ÑßÑ├Ñ╗í╝Ñ╕ñ¼ "Forbidden" ñ╟╗╧ñ▐ñ├ñ╞ñññδ</dt> <dd>ñ│ñ∞ñ╧Ñ╤í╝Ñ▀Ñ├Ñ╖ÑτÑ≤ñ╬╠Σ┬Ωñ╚ñññªñ│ñ╚ñ≥░╒╠úñ╖ñ▐ñ╣íú <a href="#errorlogs">Apache ñ╬Ñ¿ÑΘí╝ÑφÑ░</a>ñ╚íó╕σ╜╥ñ╬<a href="#filepermissions">í╓Ñ╒ÑíÑñÑδñ╬Ñ╤í╝Ñ▀Ñ├Ñ╖ÑτÑ≤í╫</a> ñ╬╛╧ñ≥Ñ┴ѺÑ├Ñ»ñ╖ñ╞ñ»ñ└ñ╡ññíú </dd> <dt>"Internal Server Error" ñ╚ñññªÑßÑ├Ñ╗í╝Ñ╕</dt> <dd><a href="#errorlogs">Apache ñ╬Ñ¿ÑΘí╝ÑφÑ░</a>ñ≥Ñ┴ѺÑ├Ñ»ñ╣ñδñ╚íó"Premature end of script headers" ñ╚ñññªÑφÑ░ñ¼╡¡╧┐ñ╡ñ∞ñ╞ñññδñ╚╗╫ñññ▐ñ╣íúñ╜ñ╖ñ╞íóñ¬ñ╜ñΘñ» CGI Ñ╫ÑφÑ░ÑΘÑαñ╦ñΦñ├ñ╞└╕└«ñ╡ñ∞ñ┐Ñ¿ÑΘí╝ÑßÑ├Ñ╗í╝Ñ╕ñΓ╡¡╧┐ñ╡ñ∞ñ╞ñññδñ╟ñ╖ñτñªíú ñ│ñ╬╛∞╣τíóCGI Ñ╫ÑφÑ░ÑΘÑαñ¼┼¼└┌ñ╩ HTTP Ñ╪Ñ├Ñ└ñ≥╜╨╬╧ñ╟ñ¡ñ╩ññ╕╢░°ñ≥├╬ñδñ┐ñßñ╦íó ░╩▓╝ñ╬│╞╛╧ñ╟Ñ┴ѺÑ├Ñ»ñ╖ñ╞ñ▀ñ╞ñ»ñ└ñ╡ññíú</dd> </dl> <h3><a name="permissions" id="permissions">Ñ╒ÑíÑñÑδñ╬Ñ╤í╝Ñ▀Ñ├Ñ╖ÑτÑ≤</a></h3> <p>Ñ╡í╝Ñ╨ñ╧ñóñ╩ñ┐ñ╬╕ó╕┬ñ╟╝┬╣╘ñ╡ñ∞ñ╞ñññ╩ñññ╬ñ≥╦║ñ∞ñ╩ñññΦñªñ╦íú ñ─ñ▐ñΩíó╡»╞░ñ╣ñδñ╚ñ¡íóÑ╡í╝Ñ╨ñ╧╞├╕óñ≥ñΓñ┐ñ╩ññѵí╝Ñ╢ - ─╠╛∩ <code>nobody</code> ñΣ <code>www</code> ñ╬╕ó╕┬ñ╟╝┬╣╘ñ╡ñ∞ñ▐ñ╣íúñ╖ñ┐ñ¼ñ├ñ╞íóñóñ╩ñ┐ñ¼╜Ω═¡ñ╣ñδ Ñ╒ÑíÑñÑδñ≥╝┬╣╘ñ╣ñδñ╦ñ╧╩╠ñ╬Ñ╤í╝Ñ▀Ñ├Ñ╖ÑτÑ≤ñ¼╔¼═╫ñ╚ñ╩ñΩñ▐ñ╣íú ─╠╛∩íó<code>nobody</code> ñ¼╝┬╣╘ñ╣ñδñ╬ñ╦╜╜╩¼ñ╩Ñ╤í╝Ñ▀Ñ├Ñ╖ÑτÑ≤ñ≥═┐ñ¿ñδ╩²╦íñ╧íó Ñ╒ÑíÑñÑδñ╦├»ñ╟ñΓ╝┬╣╘▓─╟╜ñ╚ñ╣ñδÑ╤í╝Ñ▀Ñ├Ñ╖ÑτÑ≤ñ≥═┐ñ¿ñδñ│ñ╚ñ╟ñ╣:</p> <div class="example"><p><code> chmod a+x first.pl </code></p></div> <p>ñ▐ñ┐íóñΓñ╖ñóñ╩ñ┐ñ╬Ñ╫ÑφÑ░ÑΘÑαñ¼┬╛ñ╬Ñ╒ÑíÑñÑδñ≥╞╔ñ▀╜±ñ¡ñ╣ñδñ╩ñΘñ╨íó ñ╜ñ∞ñΘñ╬Ñ╒ÑíÑñÑδñ╧íóñ│ñ∞ñ¼▓─╟╜ñ╚ñ╩ñδ└╡ñ╖ññÑ╤í╝Ñ▀Ñ├Ñ╖ÑτÑ≤ ñ≥╗²ñ├ñ╞ñññδ╔¼═╫ñ¼ñóñΩñ▐ñ╣íú</p> <h3><a name="pathinformation" id="pathinformation">Ñ╤Ñ╣╛≡╩≤ñ╚┤─╢¡</a></h3> <p>Ñ│Ñ▐Ñ≤Ñ╔ÑΘÑñÑ≤ñ½ñΘÑ╫ÑφÑ░ÑΘÑαñ≥╝┬╣╘ñ╣ñδñ╚ñ¡íó ░╒╝▒ñ╖ñ╩ñ»ñ╞ñΓÑ╖ѺÑδñ╦┼╧ñ╡ñ∞ñδ╛≡╩≤ñ¼ñóñΩñ▐ñ╣íú ╬πñ¿ñ╨íó╗▓╛╚ñ╣ñδÑ╒ÑíÑñÑδñ╬ñ┐ñßñ╦ñ╔ñ│ñ≥╕í║≈ñ╖ñ┐ñΘñΦñññ½ñ≥ Ñ╖ѺÑδñ╦┼┴ñ¿ñδ <code>PATH</code> ñ¼ñóñΩñ▐ñ╣íú</p> <p>Ñ╫ÑφÑ░ÑΘÑαñ¼ CGI Ñ╫ÑφÑ░ÑΘÑαñ╚ñ╖ñ╞ѪѺÑ╓Ñ╡í╝Ñ╨ñ╦ñΦñ├ñ╞╝┬╣╘ñ╡ñ∞ñδñ╚ñ¡íó ñ╜ñ∞ñ╧╞▒ñ╕ <code>PATH</code> ñ╟ñ╧ñ╩ñññ½ñΓñ╖ñ∞ñ▐ñ╗ñ≤íú CGI Ñ╫ÑφÑ░ÑΘÑα╞Γñ╟╕╞ñ╙╜╨ñ╣ñóñΘñµñδÑ╫ÑφÑ░ÑΘÑα (╬πñ¿ñ╨íó<code>sendmail</code> ñ╬ñΦñªñ╩ñΓñ╬) ñ╧íó Ñ╒ÑδÑ╤Ñ╣ñ╟╗╪─Ωñ╣ñδ╔¼═╫ñ¼ñóñδñ╟ñ╖ñτñªíúñ╜ñ∞ñ╦ñΦñΩíóCGI Ñ╫ÑφÑ░ÑΘÑαñ≥╝┬╣╘ñ╖ñΦñªñ╚ñ╖ñ┐ñ╚ñ¡íó Ñ╖ѺÑδñ╧ñ╜ñ╬ñΦñªñ╩Ñ╫ÑφÑ░ÑΘÑαñ≥╕½ñ─ñ▒ñδñ│ñ╚ñ¼ñ╟ñ¡ñ▐ñ╣íú</p> <p>╞▒══ñ╩ñ│ñ╚ñ╧íóÑ╣Ñ»ÑΩÑ╫Ñ╚ñ╬ÑñÑ≤Ñ┐Ñ╫ÑΩÑ┐ (ñ╖ñ╨ñ╖ñ╨ <code>perl</code>) ñ╪ñ╬Ñ╤Ñ╣ñ╟íóCGI Ñ╫ÑφÑ░ÑΘÑαñ╬ 1 ╣╘╠▄ñ╦╝íñ╬ñΦñªñ╦╝¿ñ╡ñ∞ñ▐ñ╣:</p> <div class="example"><p><code> #!/usr/bin/perl </code></p></div> <p>ñ│ñ∞ñ¼ÑñÑ≤Ñ┐í╝Ñ╫ÑΩÑ┐ñ╪ñ╬╝┬║▌ñ╬Ñ╤Ñ╣ñ╟ñóñδñ│ñ╚ñ≥│╬╝┬ñ╦ñ╖ñ╞ñ¬ñ¡ñ▐ñ╣íú</p> <h3><a name="syntaxerrors" id="syntaxerrors">Ñ╫ÑφÑ░ÑΘÑαÑ¿ÑΘí╝</a></h3> <p>CGI Ñ╫ÑφÑ░ÑΘÑαñ¼╝║╟╘ñ╣ñδñ╬ñ╧┬τ─±íóÑ╫ÑφÑ░ÑΘÑα╝½┐╚ñ╦╠Σ┬Ωñ¼ñóñδ╛∞╣τñ╟ñ╣íú ░∞┼┘ CGI ñ╬╗╚ññ╩²ñ≥═²▓≥ñ╖íó┴░╜╥ñ╬╞≤ñ─ñ╬╕φñΩñ≥╚╚ñ╖ñ╞ñññ╩ñññ╩ñΘñ╨íó ñ▐ñ║┤╓░πñññ╩ñ»ñ╜ñªñ╟ñ╖ñτñªíúÑ╓ÑΘѪÑ╢ñ≥╗╚ñ├ñ╞Ñ╞Ñ╣Ñ╚ñ╣ñδ┴░ñ╦ ñ▐ñ║│╬╟ºñ╣ñδñ│ñ╚ñ╧íóÑ│Ñ▐Ñ≤Ñ╔ÑΘÑñÑ≤ñ½ñΘÑ╫ÑφÑ░ÑΘÑαñ¼╝┬╣╘ñ╟ñ¡ñδñ│ñ╚ñ╟ñ╣íú ╬πñ¿ñ╨íó░╩▓╝ñ≥╝┬╣╘ñ╖ñ╞ñ▀ñ╞ñ»ñ└ñ╡ññ:</p> <div class="example"><p><code> cd /usr/local/apache2/cgi-bin<br /> ./first.pl </code></p></div> <p>(<code>perl</code> ÑñÑ≤Ñ┐Ñ╫ÑΩÑ┐ñ╧╕╞ñ╨ñ╩ñññ╟ñ»ñ└ñ╡ññíú Ñ╖ѺÑδñ╚ Apache ñ¼Ñ╣Ñ»ÑΩÑ╫Ñ╚ñ╬║╟╜Θñ╬╣╘ñ╬ <a href="#pathinformation">Ñ╤Ñ╣╛≡╩≤</a> ñ≥╗╚ñ├ñ╞╕½ñ─ñ▒ñ▐ñ╣íú)</p> <p>║╟╜Θñ╦Ñ╫ÑφÑ░ÑΘÑαñ½ñΘ╜╨╬╧ñ╡ñ∞ñδñ╬ñ╧ <code>Content-Type</code> ñ≥┤▐ñ▀íó ╕σñ╦╢⌡╣╘ñ╬┬│ñ» HTTP Ñ╪Ñ├Ñ└ñ╟ñ╩ñ▒ñ∞ñ╨ñ╩ñΩñ▐ñ╗ñ≤íú┬╛ñ╬ñΓñ╬ñ¼╜╨╬╧ñ╡ñ∞ñ╞ñññδ ╛∞╣τñ╧íóApache ñ╧ñ│ñ╬Ñ╫ÑφÑ░ÑΘÑαñ≥Ñ╡í╝Ñ╨╖╨═│ñ╟╝┬╣╘ñ╖ñΦñªñ╚ñ╖ñ┐ñ╚ñ¡ñ╦ñ╧ <code>Premature end of script headers</code> Ñ¿ÑΘí╝ñ≥╜╨╬╧ñ╖ñ▐ñ╣íú╛▄║┘ñ╧ ╛σ╡¡ñ╬ <a href="#writing">CGI Ñ╫ÑφÑ░ÑΘÑαñ≥╜±ñ»</a> ñ≥╞╔ñ≤ñ╟ñ»ñ└ñ╡ññíú</p> <h3><a name="errorlogs" id="errorlogs">Ñ¿ÑΘí╝ÑφÑ░</a></h3> <p>Ñ¿ÑΘí╝ÑφÑ░ñ╧═º├úñ╟ñ╣íú ┴┤ñ╞ñ╬ñªñ▐ñ»ñññ½ñ╩ñññ│ñ╚ñ╧íóÑ¿ÑΘí╝ÑφÑ░ñ╦ÑßÑ├Ñ╗í╝Ñ╕ñ≥└╕└«ñ╖ñ▐ñ╣íú ╔¼ñ║ñ╜ñ∞ñ≥║╟╜Θñ╦╕½ñδñ┘ñ¡ñ╟ñ╣íú ñΓñ╖íóñóñ╩ñ┐ñ¼ÑªÑºÑ╓Ñ╡ÑñÑ╚ñ≥╝τ║┼ñ╖ñ╞ñññδ╛∞╜Ωñ¼ Ñ¿ÑΘí╝ÑφÑ░ñ╬╗▓╛╚ñ≥╡÷ñ╖ñ╞ñññ╩ñññ╩ñΘñ╨íóñ¡ñ├ñ╚┬╛ñ╬Ñ╡ÑñÑ╚ñ╟╝τ║┼ñ╣ñδñ┘ñ¡ñ╟ñ╣íú Ñ¿ÑΘí╝ÑφÑ░ñ╬╞╔ñ▀╩²ñ≥│╪ñ╓ñ│ñ╚ñ╟íóñ█ñ╚ñ≤ñ╔┴┤ñ╞ñ╬╠Σ┬Ωñ¼┐╫┬«ñ╦│╬╟ºñ╡ñ∞íó ┐╫┬«ñ╦▓≥╖Φñ╡ñ∞ñδñ╚ñññªñ│ñ╚ñ¼╩¼ñ½ñδñ╟ñ╖ñτñªíú</p> <h3><a name="suexec" id="suexec">Suexec</a></h3> <p><a href="../suexec.html">suexec</a> Ñ╡Ñ▌í╝Ñ╚Ñ╫ÑφÑ░ÑΘÑαñ╧ Ñ╨í╝Ñ┴ÑπÑδÑ█Ñ╣Ñ╚ñΣѵí╝Ñ╢ñ╬Ñ█í╝ÑαÑ╟ÑúÑ∞Ñ»Ñ╚ÑΩñ╬╛∞╜Ωñ╦░═ñ├ñ╞ CGI Ñ╫ÑφÑ░ÑΘÑαñ≥░πñªÑµí╝Ñ╢╕ó╕┬ñ╬▓╝ñ╟┴÷ñΘñ╗ñδñ│ñ╚ñ≥▓─╟╜ñ╦ñ╖ñ▐ñ╣íú Suexec ñ╬╕ó╕┬ñ╬Ñ┴ѺÑ├Ñ»ñ╧╚≤╛∩ñ╦╕╖ñ╖ñ»íóñ╜ñ∞ñ≥╦■ñ┐ñ╡ñ╩ññ╛∞╣τñ╧ CGI Ñ╫ÑφÑ░ÑΘÑαñ¼ <code>Premature end of script headers</code> Ñ¿ÑΘí╝ñ╟ ╝┬╣╘ñ╡ñ∞ñ▐ñ╗ñ≤íú</p> <p>suexec ñ≥╗╚ñ├ñ╞ñññδñ½ñ╔ñªñ½ñ≥─┤ñ┘ñ┐ñßñ╦ñ╧ <code>apachectl -V</code> ñ≥╝┬╣╘ñ╖ñ╞íó<code>SUEXEC_BIN</code> ñ╬╛∞╜Ωñ≥─┤ñ┘ñ╞ñ»ñ└ñ╡ññíú Apache ñ¼ñ╜ñ│ñ╦ suexec ñ╬Ñ╨ÑñÑ╩ÑΩñ≥╚»╕½ñ╖ñ┐╛∞╣τñ╧íósuexec ñ¼ ╗╚═╤ñ╡ñ∞ñ▐ñ╣íú</p> <p>suexec ñ≥┤░┴┤ñ╦═²▓≥ñ╖ñ╞ñññ╩ññ╕┬ñΩíó╗╚ñªñ┘ñ¡ñ╟ñ╧ñóñΩñ▐ñ╗ñ≤íú suexec ñ≥╠╡╕·ñ╦ñ╣ñδñ╦ñ╧íó<code>SUEXEC_BIN</code> ñ½ñΘ╗╪ñ╡ñ∞ñ╞ñññδ <code>suexec</code> Ñ╨ÑñÑ╩ÑΩñ≥║∩╜ⁿ (ñ½╠╛┴░ñ≥╩╤╣╣) ñ╣ñδñ└ñ▒ñ╟ñ╣íú <a href="../suexec.html">suexec</a> ñ≥╞╔ñ≤ñ└╕σñ╟íóñ▐ñ└ñ╜ñ∞ñ≥ ╗╚ñññ┐ñññ╬ñ╟ñóñ∞ñ╨íó<code>suexec -V</code> ñ≥╝┬╣╘ñ╖ñ╞ suexec ñ╬ ÑφÑ░Ñ╒ÑíÑñÑδñ╬░╠├╓ñ≥─┤ñ┘íóñ╜ñ╬ÑφÑ░Ñ╒ÑíÑñÑδñ≥╗╚ñ├ñ╞Ñ▌ÑΩÑ╖í╝░π╚┐ñ≥ ╕½ñ─ñ▒ñ╞ñ»ñ└ñ╡ññíú</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="behindscenes" id="behindscenes">╬óñ╟▓┐ñ¼╡»ñ│ñ├ñ╞ñññδñ╬ñ½?</a></h2> <p>CGI Ñ╫ÑφÑ░ÑΘÑ▀Ñ≤Ñ░ñ╦╜¼╜╧ñ╣ñδñ╚íó ╬óñ╟╡»ñ│ñ├ñ╞ñññδñ│ñ╚ñ╦ñ─ñññ╞╣╣ñ╦═²▓≥ñ╣ñδñ│ñ╚╠≥ñ╦╬⌐ñ┴ñ▐ñ╣íú Ñ╓ÑΘѪÑ╢ñ╚Ñ╡í╝Ñ╨ñ¼ñ╔ñ╬ñΦñªñ╦┴Ω╕▀─╠┐«ñ╣ñδñ½ñ╦ñ─ñññ╞ñ╧╞├ñ╦ñ╜ñªñ╟ñ╣íú ñ╩ñ╝ñ╩ñΘíó"Hello, World." ñ≥░⌡╗·ñ╣ñδÑ╫ÑφÑ░ÑΘÑαñ≥╜±ñ»ñ│ñ╚ñ╧ñ¬ñ¬ñññ╦╖δ╣╜ñ╟ñ╣ñ¼íó ñ╜ñ∞ñ╧╞├ñ╦═¡▒╫ñ╟ñ╧ñóñΩñ▐ñ╗ñ≤íú</p> <h3><a name="env" id="env">┤─╢¡╩╤┐⌠</a></h3> <p>┤─╢¡╩╤┐⌠ñ╧íó ñóñ╩ñ┐ñ¼Ñ│Ñ≤Ñ╘Ñσí╝Ñ┐ñ≥╗╚ñªñ╚ñ¡ñ╦╩╒ñΩñ╦┬╕║▀ñ╖ñ╞ñññδ├═ñ╟ñ╣íú ñ╜ñ∞ñΘñ╧íóÑ╤Ñ╣ (Ñ│Ñ▐Ñ≤Ñ╔ñ≥Ñ┐ÑñÑ╫ñ╖ñ┐ñ╚ñ¡ñ╦╝┬╣╘ñ╣ñδ╝┬║▌ñ╬Ñ╒ÑíÑñÑδñ≥├╡ñ╖╜╨ñ╣ñ╚ñ│ñφ)íó ѵí╝Ñ╢╠╛íó├╝╦÷╖┐ñ╩ñ╔ñ╬ñΦñªñ╩╩╪═°ñ╩ñΓñ╬ñ╟ñ╣íú ─╠╛∩íó╔ß├╩╗╚═╤ñ╖ñ╞ñññδ┤─╢¡╩╤┐⌠ñ╬┤░┴┤ñ╩ÑΩÑ╣Ñ╚ñ≥─┤ñ┘ñδñ╦ñ╧íó Ñ│Ñ▐Ñ≤Ñ╔Ñ╫ÑφÑ≤Ñ╫Ñ╚ñ╟ <code>env</code> ñ≥╞■╬╧ñ╖ñ▐ñ╣íú</p> <p>CGI ñ╬╜Φ═²├µíóÑ╡í╝Ñ╨ñ╚Ñ╓ÑΘѪÑ╢ñΓ┤─╢¡╩╤┐⌠ñ≥└▀─Ωñ╖íó ñ╜ñ∞ñ╦ñΦñΩ┴Ω╕▀ñ╦─╠┐«ñ╣ñδñ│ñ╚ñ¼ñ╟ñ¡ñδñΦñªñ╦ñ╩ñΩñ▐ñ╣íú ñ╜ñ╬┤─╢¡╩╤┐⌠ñ╧íóÑ╓ÑΘѪÑ╢Ñ┐ÑñÑ╫ (Netscape, IE, Lynx)íóÑ╡í╝Ñ╨Ñ┐ÑñÑ╫ (Apache, IIS, WebSite)íó╝┬╣╘ñ╡ñ∞ñ╞ñññδ CGI Ñ╫ÑφÑ░ÑΘÑαñ╬╠╛┴░ñ╩ñ╔ñ╟ñ╣íú</p> <p>ñ│ñ∞ñΘñ╬╩╤┐⌠ñ╧ CGI Ñ╫ÑφÑ░ÑΘÑ▐ñ¼╗╚═╤ñ╟ñ¡ñ▐ñ╣íú ñ╜ñ╖ñ╞íóñ╜ñ∞ñ╧Ñ»ÑΘÑñÑóÑ≤Ñ╚ñ╚Ñ╡í╝Ñ╨ñ╬─╠┐«ñ╬╧├ñ╬╚╛╩¼ñ╟ñ╣íú ╔¼═╫ñ╩╩╤┐⌠ñ╬┤░┴┤ñ╩ÑΩÑ╣Ñ╚ñ╧ <a href="http://hoohoo.ncsa.uiuc.edu/cgi/env.html">http://hoohoo.ncsa.uiuc.edu/cgi/env.html</a> ñ╦ñóñΩñ▐ñ╣íú</p> <p>░╩▓╝ñ╬├▒╜πñ╩ Perl CGI Ñ╫ÑφÑ░ÑΘÑαñ╧íó┼╧ñ╡ñ∞ñδ┴┤ñ╞ñ╬┤─╢¡╩╤┐⌠ñ≥╔╜╝¿ñ╖ñ▐ñ╣íú╞▒══ñ╬Ñ╫ÑφÑ░ÑΘÑαñ╧íó Apache Ñ╟ÑúÑ╣Ñ╚ÑΩÑ╙Ñσí╝Ñ╖ÑτÑ≤ñ╬ <code>cgi-bin</code> Ñ╟ÑúÑ∞Ñ»Ñ╚ÑΩñ╦╞≤ñ─┤▐ñ▐ñ∞ñ╞ñññ▐ñ╣íú ñññ»ñ─ñ½ñ╬╩╤┐⌠ñ¼╔¼┐▄ñ╟ñóñΩíóñññ»ñ─ñ½ñ╧╟ñ░╒ñ╟ñóñδñ│ñ╚ñ╦├φ░╒ñ╖ñ╞ñ»ñ└ñ╡ññíú ñ╜ñ╖ñ╞íó╕°╝░ñ╬ÑΩÑ╣Ñ╚ñ╦ñ╧ñ╩ñññññ»ñ─ñ½ñ╬╩╤┐⌠ñ¼╔╜╝¿ñ╡ñ∞ñ╞ñññδñ½ñΓñ╖ñ∞ñ▐ñ╗ñ≤íú ñ╡ñΘñ╦íóApache ñ╧Ñ╟Ñ╒Ñ⌐ÑδÑ╚ñ╟═╤░╒ñ╡ñ∞ñ╞ñññδ┤≡╦▄┼¬ñ╩ñΓñ╬ñ╦ <a href="../env.html">ñóñ╩ñ┐╝½┐╚ñ╬┤─╢¡╩╤┐⌠ñ≥▓├ñ¿ñδ</a>ñ┐ñßñ╬íó ┬┐ñ»ñ╬░█ñ╩ñδ╩²╦íñ≥═╤░╒ñ╖ñ╞ñ╖ñ▐ñ╣íú</p> <div class="example"><p><code> #!/usr/bin/perl<br /> print "Content-type: text/html\n\n";<br /> foreach $key (keys %ENV) {<br /> <span class="indent"> print "$key --> $ENV{$key}<br>";<br /> </span> } </code></p></div> <h3><a name="stdin" id="stdin">STDIN ñ╚ STDOUT</a></h3> <p>Ñ╡í╝Ñ╨ñ╚Ñ»ÑΘÑñÑóÑ≤Ñ╚┤╓ñ╬ñΓñª░∞ñ─ñ╬─╠┐«ñ╧íó╔╕╜α╞■╬╧ (<code>STDIN</code>)ñ╚╔╕╜α╜╨╬╧ (<code>STDOUT</code>) ñ≥─╠ñ╕ñ╞╣╘ñ╩ñ∩ñ∞ñ▐ñ╣íú─╠╛∩ñ╬╩╕╠«ñ╦ñ¬ñññ╞íó<code>STDIN</code> ñ╧Ñ¡í╝Ñ▄í╝Ñ╔ñΣÑ╫ÑφÑ░ÑΘÑαñ¼╞░║εñ╣ñδñ┐ñßñ╦═┐ñ¿ñΘñ∞ñδÑ╒ÑíÑñÑδñ≥░╒╠úñ╖íó <code>STDOUT</code> ñ╧─╠╛∩Ñ│Ñ≤Ñ╜í╝Ñδñ▐ñ┐ñ╧Ñ╣Ñ»ÑΩí╝Ñ≤ñ≥░╒╠úñ╖ñ▐ñ╣íú</p> <p>ѪѺÑ╓Ñ╒Ñ⌐í╝Ñαñ½ñΘ CGI Ñ╫ÑφÑ░ÑΘÑαñ╪<code>POST</code> ñ╖ñ┐ñ╚ñ¡íóÑ╒Ñ⌐í╝Ñαñ╬Ñ╟í╝Ñ┐ñ╧╞├╩╠ñ╩Ñ╒Ñ⌐í╝Ñ▐Ñ├Ñ╚ñ╟┬½ñ═ñΘñ∞íó <code>STDIN</code> ñ≥─╠ñ╖ñ╞íóCGI Ñ╫ÑφÑ░ÑΘÑαñ╦░·ñ¡┼╧ñ╡ñ∞ñ▐ñ╣íú Ñ╫ÑφÑ░ÑΘÑαñ╧Ñ╟í╝Ñ┐ñ¼Ñ¡í╝Ñ▄í╝Ñ╔ ñΓñ╖ñ»ñ╧Ñ╒ÑíÑñÑδñ½ñΘ═Φñ╞ñññ┐ñ½ñ╬ñΦñªñ╦╜Φ═²ñ╣ñδñ│ñ╚ñ¼ñ╟ñ¡ñ▐ñ╣íú</p> <p>í╓╞├╩╠ñ╩Ñ╒Ñ⌐í╝Ñ▐Ñ├Ñ╚í╫ñ╧ñ╚ñ╞ñΓ├▒╜πñ╟ñ╣íúÑ╒Ñúí╝ÑδÑ╔╠╛ñ╚├═ñ╧ÑñÑ│í╝Ñδ (=) ñ╟╖δñ╨ñ∞ñ▐ñ╣íúñ╜ñ╖ñ╞├═ñ╬┴╚ñ╧ÑóÑ≤Ñ╤Ñ╡Ñ≤Ñ╔ (&) ñ╟╖δñ╨ñ∞ñ▐ñ╣íú Ñ╣Ñ┌í╝Ñ╣íóÑóÑ≤Ñ╤Ñ╡Ñ≤Ñ╔íóÑñÑ│í╝Ñδñ╬ñΦñªñ╩╠╠┼▌ñ╩╩╕╗·ñ╧íó ñ╜ñ∞ñΘñ¼╞░║εñ≥┬╠╠▄ñ╦ñ╖ñ╩ñññΦñªñ╦ñ╜ñ╬╩╕╗·ñ╦┴Ω┼÷ñ╣ñδ 16 ┐╩ñ╦╩╤┤╣ñ╡ñ∞ñ▐ñ╣íú ┴┤Ñ╟í╝Ñ┐╩╕╗·╬≤ñ╧íó░╩▓╝ñ╬ñΦñªñ╦ñ╩ñΩñ▐ñ╣: </p> <div class="example"><p><code> name=Rich%20Bowen&city=Lexington&state=KY&sidekick=Squirrel%20Monkey </code></p></div> <p>╗■í╣íóñ│ñ╬ñΦñªñ╩╩╕╗·╬≤ñ¼ URL ñ╦╔╒▓├ñ╡ñ∞ñδñ╬ñ≥╕½ñδñ╟ñ╖ñτñªíúñ╜ñ╬╛∞╣τíóÑ╡í╝Ñ╨ñ╧ <code>QUERY_STRING</code> ñ╚ñññª┤─╢¡╩╤┐⌠ñ╦ñ╜ñ╬╩╕╗·╬≤ñ≥╞■ñ∞ñ▐ñ╣íúñ╜ñ∞ñ╧ <code>GET</code> ÑΩѻѿÑ╣Ñ╚ñ╚╕╞ñ╨ñ∞ñ▐ñ╣íú HTML Ñ╒Ñ⌐í╝Ñαñ╟ñ╧íóÑ╟í╝Ñ┐ñ≥┼╧ñ╣ñ┐ñßñ╦ <code>GET</code> ñ╚ <code>POST</code> ñ╬ñ╔ñ┴ñΘñ≥╗╚═╤ñ╣ñδñ½ñ≥íó<code>FORM</code> Ñ┐Ñ░ñ╬ <code>METHOD</code> ┬░└¡ñ╬└▀─Ωñ╟╗╪─Ωñ╖ñ▐ñ╣íú</p> <p>CGI Ñ╫ÑφÑ░ÑΘÑαñ╧íóñ╜ñ╬╩╕╗·╬≤ñ≥╠≥ñ╦╬⌐ñ─╛≡╩≤ñ╦╩¼│Σñ╣ñδ└╒╟ññ¼ñóñΩñ▐ñ╣íú ╣¼ñññ╦ñΓíóñ╜ñ╬Ñ╟í╝Ñ┐╜Φ═²ñ≥╜⌡ñ▒ñδÑΘÑñÑ╓ÑΘÑΩñΣÑΓÑ╕Ñσí╝Ñδñ¼┬╕║▀ñ╖ñ▐ñ╣íú ñ│ñ∞ñΘñ╧íóCGI Ñ╫ÑφÑ░ÑΘÑαñ╬┬╛ñ╬╠╠ñ╟ñΓ╞▒══ñ╦╠≥ñ╦╬⌐ñ┴ñ▐ñ╣íú</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="libraries" id="libraries">CGI ÑΓÑ╕Ñσí╝Ñδ/ÑΘÑñÑ╓ÑΘÑΩ</a></h2> <p>CGI Ñ╫ÑφÑ░ÑΘÑαñ≥╜±ñ»ñ╚ñ¡íó╠╠┼▌ñ╩╗┼╗÷ñ╬┬τ╔⌠╩¼ñ≥ñ╖ñ╞ñ»ñ∞ñδ Ñ│í╝Ñ╔ÑΘÑñÑ╓ÑΘÑΩñ▐ñ┐ñ╧ÑΓÑ╕Ñσí╝Ñδñ≥╗╚ñªñ│ñ╚ñ≥╕í╞ññ╣ñ┘ñ¡ñ╟ñ╣íú ñ│ñ∞ñ╧Ñ¿ÑΘí╝ñ≥╕║ñΘñ╖íó┴ßññ│½╚»ñ╦ñ─ñ╩ñ¼ñΩñ▐ñ╣íú</p> <p>Perl ñ╟ CGI Ñ╫ÑφÑ░ÑΘÑαñ≥╜±ñññ╞ñññδñ╩ñΘíóÑΓÑ╕Ñσí╝Ñδñ╧ <a href="http://www.cpan.org/">CPAN</a> ñ╟─≤╢íñ╡ñ∞ñ╞ñññ▐ñ╣íú ñ│ñ╬╠▄┼¬ñ╬ñ┐ñßñ╬║╟ñΓ╔ß╡┌ñ╖ñ╞ñññδÑΓÑ╕Ñσí╝Ñδñ╧ <code>CGI.pm</code> ñ╟ñ╣íú <code>CGI::Lite</code> ñΓ╕í╞ññ╖ñ▐ñ╖ñτñªíúñ│ñ∞ñ╧íóñ█ñ╚ñ≤ñ╔ñ╬Ñ╫ÑφÑ░ÑΘÑα ñ╦ñ¬ñññ╞╔¼═╫ñ╚ñ╣ñδñ╣ñ┘ñ╞ñ╬╡í╟╜ñ╬║╟╛«Ñ╗Ñ├Ñ╚ñ╬╝┬┴⌡ñ╟ñ╣íú</p> <p>C ñ╟ CGI Ñ╫ÑφÑ░ÑΘÑαñ≥╜±ñññ╞ñññδñ╩ñΘíóñññφñññφñ╩ ѬÑ╫Ñ╖ÑτÑ≤ñ¼ñóñΩñ▐ñ╣íúñ│ñ∞ñΘñ╬╞Γñ╬░∞ñ─ñ╧ <a href="http://www.boutell.com/cgic/">http://www.boutell.com/cgic/</a> ñ╟─≤╢íñ╡ñ∞ñ╞ñññδ <code>CGIC</code> ÑΘÑñÑ╓ÑΘÑΩñ╟ñ╣íú</p> </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="section"> <h2><a name="moreinfo" id="moreinfo">╣╣ñ╩ñδ╛≡╩≤</a></h2> <p>CGI ñ╦┤╪ñ╣ñδ╛≡╩≤ñ╧ѪѺÑ╓ñ╟┐⌠┬┐ñ»─≤╢íñ╡ñ∞ñ╞ñññ▐ñ╣íúCGI ñ╬╠Σ┬Ωñ╦ñ─ñññ╞ñ╧ Usenet ñ╬ <a href="news:comp.infosystems.www.authoring.cgi">comp.infosystems.www.authoring.cgi</a> ñ╟íó ┬╛ñ╬ѵí╝Ñ╢ñ╚╧└╡─ñ╣ñδñ│ñ╚ñ¼ñ╟ñ¡ñ▐ñ╣íúHTML Writers Guide ñ╬ -servers Ñßí╝ÑΩÑ≤Ñ░ÑΩÑ╣Ñ╚ñ╧íóñóñ╩ñ┐ñ╬╝┴╠Σñ╦▓≤┼·ñ╖ñ╞ñ»ñ∞ñδ░╬┬τñ╩ÑΩÑ╜í╝Ñ╣ñ╟ñ╣íú <a href="http://www.hwg.org/lists/hwg-servers/">http://www.hwg.org/lists/hwg-servers/</a> ñ╟╣╣ñ╦┬┐ñ»ñ≥├╡ñ╖╜╨ñ╣ñ│ñ╚ñ¼ñ╟ñ¡ñ▐ñ╣íú</p> <p>ñ╜ñ╖ñ╞ñΓñ┴ñφñ≤íóñ¬ñ╜ñΘñ» CGI Ñ╫ÑφÑ░ÑΘÑαñ╬╞░║εñ╦┤╪ñ╣ñδ╛▄║┘ñ╬┴┤ñ╞ñ¼╡¡╜╥ñ╡ñ∞ñ╞ñññδ CGI ñ╬╗┼══ñ≥╞╔ñαñ┘ñ¡ñ╟ñ╣íúѬÑΩÑ╕Ñ╩ÑδÑ╨í╝Ñ╕ÑτÑ≤ñ≥ <a href="http://hoohoo.ncsa.uiuc.edu/cgi/interface.html">NCSA</a> ñ╟íóÑóÑ├Ñ╫Ñ╟í╝Ñ╚ñ╡ñ∞ñ┐Ñ╔ÑΘÑ╒Ñ╚ñ≥ <a href="http://web.golux.com/coar/cgi/">Common Gateway Interface RFC Ñ╫ÑφÑ╕ѺѻÑ╚</a>ñ╟╗▓╛╚ñ╣ñδñ│ñ╚ñ¼ñ╟ñ¡ñ▐ñ╣íú</p> <p>CGI ñ╬╠Σ┬Ωñ╦ñ─ñññ╞íó▓├ñ∩ñ├ñ╞ñññδÑßí╝ÑΩÑ≤Ñ░ÑΩÑ╣Ñ╚ñ▐ñ┐ñ╧Ñ╦Ñσí╝Ñ╣ Ñ░Ñδí╝Ñ╫ñ╦╝┴╠Σñ≥┴≈ñδñ╚ñ¡íó╡»ñ│ñ├ñ┐ñΓñ╬íó╡»ñ│ñ├ñ╞ñ█ñ╖ñññ│ñ╚íó ╝┬║▌ñ╦╡»ñ│ñ├ñ┐ñ│ñ╚ñ¼ñ╔ñª░πñªñ½íó╗╚═╤ñ╖ñ╞ñññδÑ╡í╝Ñ╨íó CGI Ñ╫ÑφÑ░ÑΘÑαñ≥╡¡╜╥ñ╖ñ╞ñññδ╕└╕∞ñ╦┤╪ñ╣ñδ╜╜╩¼ñ╩╛≡╩≤ñ╚íó ▓─╟╜ñ╟ñóñ∞ñ╨╠Σ┬Ωñ╬Ñ│í╝Ñ╔ñ≥─≤╢íñ╣ñδñΦñªñ╦ñ╖ñ╞ñ»ñ└ñ╡ññíú ñ╜ñªñ╣ñδñ│ñ╚ñ╟íó╠Σ┬Ωñ¼ñΦñΩ┤╓├▒ñ╦╕½ñ─ñ½ñδñΦñªñ╦ñ╩ñΩñ▐ñ╣íú</p> <p>Apache ñ╬Ñ╜í╝Ñ╣Ñ│í╝Ñ╔ñ╦ñ¬ñññ╞╠Σ┬Ωñ≥╚»╕½ñ╖ñ┐ñ│ñ╚ñ≥│╬┐«ñ╖ñ╞ñññ╩ññ╕┬ñΩíó CGI ñ╬╠Σ┬Ωñ╦┤╪ñ╣ñδ╝┴╠Σñ≥ Apache Ñ╨Ñ░Ñ╟í╝Ñ┐Ñ┘í╝Ñ╣ñ╦<strong>┴≈ñδñ┘ñ¡ñ╟ñ╩ññ</strong> ñ│ñ╚ñ╦├φ╠▄ñ╖ñ╞ñ»ñ└ñ╡ññíú</p> </div></div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/howto/cgi.html" hreflang="en" rel="alternate" title="English"> en </a> | <a href="../ja/howto/cgi.html" title="Japanese"> ja </a> | <a href="../ko/howto/cgi.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p> </div><div id="footer"> <p class="apache">Copyright 1999-2004 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> <p class="menu"><a href="../mod/">ÑΓÑ╕Ñσí╝Ñδ</a> | <a href="../mod/directives.html">Ñ╟ÑúÑ∞Ñ»Ñ╞ÑúÑ╓</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">═╤╕∞</a> | <a href="../sitemap.html">Ñ╡ÑñÑ╚Ñ▐Ñ├Ñ╫</a></p></div> </body></html>